package com.ruoyi.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.domain.WcPatentApplication;
import com.ruoyi.system.domain.vo.business.*;
import com.ruoyi.system.dto.coopHan.PageCulvertNoticeDto;
import com.ruoyi.system.dto.handleRecord.IdSearchVO;

import java.util.List;

/**
 * 剧本备案申请Service接口
 *
 * @author ruoyi
 * @date 2024-02-28
 */
public interface IWcPatentApplicationService extends IService<WcPatentApplication>
{
    /**
     * 查询剧本备案申请
     *
     * @param id 剧本备案申请主键
     * @return 剧本备案申请
     */
    public WcPatentApplication selectWcPatentApplicationById(Long id);

    /**
     * 查询剧本备案申请列表
     *
     * @param wcPatentApplication 剧本备案申请
     * @return 剧本备案申请集合
     */
    public List<WcPatentApplication> selectWcPatentApplicationList(WcPatentApplication wcPatentApplication);

    /**
     * 新增剧本备案申请
     *
     * @param wcPatentApplication 剧本备案申请
     * @return 结果
     */
    public int insertWcPatentApplication(WcPatentApplication wcPatentApplication);

    /**
     * 修改剧本备案申请
     *
     * @param wcPatentApplication 剧本备案申请
     * @return 结果
     */
    public int updateWcPatentApplication(WcPatentApplication wcPatentApplication);

    /**
     * 批量删除剧本备案申请
     *
     * @param ids 需要删除的剧本备案申请主键集合
     * @return 结果
     */
    public int deleteWcPatentApplicationByIds(String ids);

    /**
     * 删除剧本备案申请信息
     *
     * @param id 剧本备案申请主键
     * @return 结果
     */
    public int deleteWcPatentApplicationById(Long id);

    Page<WcPatentApplicationSelectListVO> list(WcPatentApplicationSelectListDto dto);

    WcPatentApplicationDetailVO selectWcPatentApplicationDetailVOById(Long id);

    String addSave(WcPatentApplicationSaveVO saveVO) throws Exception;

    String updateSave(WcPatentApplicationUpdateVO saveVO) throws Exception;

    Page<WcPatentApplicationSelectListVO> pageNotice(PageCulvertNoticeDto dto);

    /**
     * 电影剧本备案--查询剧本备案受理列表
     * @param dto
     * @return
     */
    Page<WcPatentApplicationSelectListVO> acceptanceList(WcPatentApplicationSelectListDto dto);

    /**
     * 电影剧本备案--查询剧本备案专家评审列表
     * @param dto
     * @return
     */
    Page<WcPatentApplicationSelectListVO> expertReviewList(WcPatentApplicationSelectListDto dto);

    /**
     * 电影剧本备案--查询剧本备案审查决定列表
     * @param dto
     * @return
     */
    Page<WcPatentApplicationSelectListVO> reviewDecisionList(WcPatentApplicationSelectListDto dto);

    /**
     * 电影剧本备案--查询剧本备案公示发证列表
     * @param dto
     * @return
     */
    Page<WcPatentApplicationSelectListVO> publicizeCertificationList(WcPatentApplicationSelectListDto dto);

    /**
     *  电影剧本备案--查询剧本备案公示信息列表
     * @param dto
     * @return
     */
    Page<WcPatentApplicationPublicityInfoListVo> publicityInfoList(WcPatentApplicationPublicityInfoListDto dto);

    String addRecommendation(WcPatentApplicationRecommendationVO saveVO);

    List<WcPatentApplicationRecommendationVO> getRecommendationList(IdSearchVO saveVO);
}
